package com.xb.loan.usercenter.service.dict;


import com.xb.loan.log.exception.BizException;
import com.xb.loan.usercenter.service.dict.bean.DistrictVO;

import java.util.List;

public interface IDistrictService {
	/**
	 * 查询areaId其下的所有子节点
	 * @param areaId
	 * @param pageNum
	 * @param numPerPage
	 * @throws BizException
	 * 2015年12月11日 by zhangyi
	 */
	public List<DistrictVO> queryAllDistrictInfo(String areaId, int pageNum, int numPerPage) throws BizException;
	/**
	 * 查询areaId其下的所有子节点  数量
	 * @param areaId
	 * @throws BizException
	 * 2015年12月11日 by zhangyi
	 */
	public int queryAllDistrictInfoCount(String areaId) throws BizException;
    /**
     *
     * 删除行政区号实体 默认同步缓存
     * @param districtId
     * @return
     */
    int deleteByDistrictId(String districtId);
    /**
     *
     * 删除行政区号实体
     * @param districtId
     * @param isEnableCache 是否同步缓存
     * @return
     */
    int deleteByDistrictId(String districtId, boolean isEnableCache);
    /**
     *
     * 新增行政区号实体 ，默认同步缓存
     * @param record
     * @return
     */
    int insert(DistrictVO record);
    /**
     *
     * 新增行政区号实体
     * @param record
     * @param isEnableCache 是否同步缓存
     * @return
     */
    int insert(DistrictVO record, boolean isEnableCache);
    /**
     *
     * 根据id获取新增行政区号实体  默认启用缓存
     * @param districtId
     * @return
     */
    DistrictVO selectByDistrictId(String districtId);
    /**
     *
     *根据id获取新增行政区号实体
     * @param districtId
     * @param isEnableCache 是否启用缓存
     * @return
     */
    DistrictVO selectByDistrictId(String districtId, boolean isEnableCache);
    /**
     *
     * 获取所有行政区号实体 ，默认启用缓存
     * @return
     */
    List<DistrictVO> selectAll();
    /**
     *
     *  获取所有行政区号实体
     * @param isEnableCache 是否启用缓存
     * @return
     */
    List<DistrictVO> selectAll(boolean isEnableCache);
    /**
     * 根据id 更新 行政区号实体 ，默认同步缓存
     * @param record
     * @return
     */
    int updateByDistrictId(DistrictVO record);
    /**
     *
     * /根据id 更新 行政区号实体述
     * @param record
     * @param isEnableCache  是否同步缓存
     * @return
     */
    int updateByDistrictId(DistrictVO record, boolean isEnableCache);

    /**
     * 根据上级地址编码获取行政区号实体 ，默认启用缓存
     * @return
     */
    List<DistrictVO> queryDistrictByParentDistrictId(String parentDistrictId);

    /**
     * 根据级别和省份城市名字查询出districtCode
     * @param parentDistrictId
     * @param districtName
     * @return
     */
    DistrictVO queryDistrictCodeByName(int districtLevel, String districtName) throws BizException ;
}
